home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / os2 / btalk13.zip / readme < prev    next >
Text File  |  1997-03-17  |  15KB  |  353 lines

  1. BackTalk 1.3 - System Speech for OS/2    (c) 1996      Jim Little
  2.                                          (c) 1996-1997 Samuel Audet
  3.  
  4. Revised and modified BackTalk project by Samuel Audet <guardia@cam.org>  
  5.  
  6. Original copy, idea and copyrights goes to Jim Little <jiml@teleport.com> 
  7. and his Power User section available at OS/2 E-Zine!.
  8.  
  9.  
  10. Table of contents
  11. ~~~~~~~~~~~~~~~~~
  12.    I. Installation
  13.   II. CMU Pronunciation Dictionary
  14.  III. SPEECHQ.CMD  Speech Queue
  15.   IV. SPKMAIL.CMD  Speaking Mail
  16.    V. SPKCLOCK.CMD Speaking Clock and SPKTIMER.CMD Speaking Timer
  17.   VI. SPKIRC.CMD  Speaking IRC
  18.  VII. How can I implant speech in my REXX scripts?
  19. VIII. Feedback
  20.   IX. Acknowledgements
  21.  
  22.  
  23. I. Installation
  24. ~~~~~~~~~~~~~~~
  25. Ok, here's the big picture.  Rsynth 2.2 might crash in Warp 4, and you
  26. may have some chipmunk voice problem with Rsynth 2.1, and also Rsynth 2.2
  27. processes faster with its multithreading.  Some sound boards like Mwave
  28. also have problems with Rsynth sound ouput.
  29.  
  30. Because of this, the installer will let you try all possible alternatives
  31. (including kludges), and you will then let you install the one that works
  32. the best on your system.
  33.  
  34. It will also ask about MR/2 ICE support.
  35.  
  36. Be sure to have EMX runtime librairies installed BEFORE installing BackTalk.
  37. You can get those on ftp://hobbes.nmsu.edu/os2/unix/emx09c/emxrt.zip
  38.  
  39. After installation, you can delete all the *.h, *.c, *.def and 'makefile'
  40. if you desire.  Those are source codes.
  41.  
  42. A folder will be created, where you can find all the objects needed to
  43. control the scripts that came with this packages as well as the main Speech
  44. Queue.  However SPKMAIL.CMD and SPKIRC.CMD will have to be manualling
  45. installed, please read below.
  46.  
  47. The installer includes Info-ZIP UNZIP 5.12 EXE.  It is freeware and
  48. available at ftp://hobbes.nmsu.edu/os2/archiver/unz512x2.exe
  49.  
  50. II. CMU Pronunciation Dictionary
  51. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  52. RSynth sounds much better if you install the optional dictionary.  This
  53. dictionary can be found online on Derek Decker's web site.  The URL is
  54. http://www.cris.com/~djd/products.html.  To install the dictionary, do the
  55. following:
  56.  
  57. 1. Stop the speech queue if it is active.
  58. 2. Copy the plain-text dictionary file into the RSynth directory.
  59.    (Oh and edit it to replace OS pronouciation to OW1 EH1 S, for OS/2 to
  60.    actually sound like OS/2, well almost)
  61. 3. Make sure you have plenty of hard drive space.  (15MB should be enough.)
  62. 3. Type "mkdictdb cmudict.04 adict.db" at a command prompt in the RSynth
  63.    directory.  Use the appropriate filename in place of cmudict.04 if it
  64.    changed.
  65. 4. Ignore errors.  (They represent multiple pronounciations and punctuations
  66.                    not support by this freeware text to speech program)
  67. 5. Wait.
  68.    ...a long time.
  69.    ...a very, very, very long time.
  70.    (We're talking at least an hour here.  Fortunately, you can multitask!)
  71. 6. When it's done, restart the speech queue and marvel at the frog prince's
  72.    transformation.  You can delete the cmudict.04 file.
  73.  
  74.  
  75. III. SPEECHQ.CMD  Speech Queue
  76. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  77. The speech queue (SPEECHQ.CMD) is the only program that actually uses SAY.EXE
  78. to generate speech.  The other programs simply place their messages in a queue
  79. for SPEECHQ to handle.  Therefore, SPEECHQ.CMD must be running before any of
  80. the other speech programs will work.  
  81.  
  82. SPEECHQ.CMD must be located in the same directory as SAY.EXE.  If you
  83. used INSTALL.CMD, the file is already there.  Normally, SPEECHQ will 
  84. say, "Speech Enabled" when it is started. If you hear "Unable to delete
  85. blahblah", naughty naughty... next time try to end it with "Stop Speech",
  86. instead of Closing the window.  Now reboot. :)
  87.  
  88. SPEECHQ.CMD will also call SPKSTART.CMD in its directory (normally with
  89. SAY.EXE).  It can be useful when you put your SPEECHQ.CMD (Speech Queue) in
  90. your Start Up folder, and you also want SPKCLOCK.CMD to start, but
  91. SPEECHQ.CMD must be loaded first.  It can be a batch file or a REXX script.
  92. A sample of this file has been included.
  93.  
  94.  
  95. IV. SPKMAIL.CMD  Speaking Mail
  96. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  97. The most useful program included with this project is (was?) SPKMAIL.CMD.
  98. When this program is installed with your e-mail program, you will be
  99. notified by voice whenever new mail arrives.  This is particularly useful
  100. if you leave your mailer running but minimized while you are connected to
  101. the Internet. SPKMAIL reads the author and the subject of any new message,
  102. preventing the need to bring up your mailer every time new mail arrives.
  103.  
  104. SPKMAIL requires an e-mail program that supports REXX exits.  I've used it
  105. successfully with PMMail 1.51 to 1.90, MR/2 ICE 1.10 to 1.26 and Internet
  106. Adventurer 0.96 Mail.  It would also be a good idea to disable WAV sound,
  107. to free the sound card.
  108.  
  109. PMMail 1.51 to 1.90:
  110. ~~~~~~~~~~~~~~~~~~~~
  111. 1. Open PMMail.
  112. 2. Select "Utilities Settings..." from the "Account" menu.
  113. 3. Click the "REXX Exits" tab.
  114. 4. Check the "Message Receive Exit" checkbox.
  115. 5. Enter the full pathname to and including SPKMAIL.CMD.
  116. 6. Press OK.
  117.  
  118. MR/2 ICE 1.10 to 1.26:
  119. ~~~~~~~~~~~~~~~~~~~~~~
  120. 1. Copy flip.exe (located in <backtalk_dir>\flip) where MR2I.EXE resides.
  121. 2. Edit SPKMAIL.CMD and change 'flip = 1'.
  122. 2. Open MR/2 ICE.
  123. 3. Select "Filter maintenance..." from the "Utilities" menu.
  124. 4. Press the "New" button.
  125. 5. Enter a description (ie.: Speaking Mail)
  126. 8. Check the "Link to REXX" checkbox.
  127. 9. Enter the full pathname to and including SPKMAIL.CMD.
  128. 10. Press OK.
  129. 11. Press Done.
  130.  
  131. Internet Adventurer 0.96 Mail
  132. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  133. 1. Open Internet Adventurer Main window.
  134. 2. Open the News and Mail window.
  135. 3. Open the Filter notebook from the Settings menu.
  136. 4. Select Add, and give a name (ie: Speaking Mail)
  137. 5. Uncheck "Incoming News", "Outgoing News" and "Outgoing Mail", and check
  138.    "Incoming Mail".
  139. 6. Check Execute REXX and type the full pathname to and including SPKMAIL.CMD
  140. 7. Press OK.
  141.  
  142.  
  143. V. SPKCLOCK.CMD Speaking Clock and SPKTIMER.CMD Speaking Timer
  144. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  145. SPKCLOCK.CMD will speak the time at a lap specified in the "lapmins"
  146. variable found at the beginning the file.  You can also specify civil
  147. (AM PM), offset (quarter before noon) or the international time (24 hours).
  148. Look in SPKCLOCK.CMD for more information.
  149.  
  150. SPKTIMER.CMD is a timer, which has the ability to speak a message and to
  151. specify the laps of time between them.  It also has an urgent mode, that
  152. gets activated if the urgent mode toggle time is greater than 0.  The
  153. urgent mode has its own message and laps time too.  And finally, the alert
  154. message, which gets spoken when the timer has finished counting.
  155.  
  156. You can specify default values directly in SPKTIMER.CMD.  Please, refer to
  157. it for more information.  Or you can use the command line to override the
  158. defaults.
  159.  
  160. -t1  countdown time (minutes)
  161. -l1  laps time (seconds)
  162. -m1  message
  163.  
  164. -t2  time remaining to switch in urgent mode (minutes)
  165. -l2  laps time in urgent mode (seconds)
  166. -m2  message in urgent mode
  167.  
  168. -m3  alert message when timer has stopped
  169.  
  170. -?   Help screen
  171.  
  172. ie.: c:\> spktimer -t1 45 -t2 15 -m1 for your dentist rendezvous -m2 for
  173.      your VERY VERY important dentist rendezvous -l1 300 -l2 120 -m3 Your
  174.      dentist rendezvous!!
  175.  
  176. Yes, that does fit on the command line.  Therefor, you can execute it from
  177. agendas that support execution of programs.  Be aware that REXX scripts
  178. aren't the program themselves, it's CMD.EXE that is the program. So to
  179. execute a REXX script when the agenda or calendar (whatever) DOES NOT
  180. specify that it can run REXX, you have to execute the following:
  181.  
  182. X:\OS2\CMD.EXE /C SPKTIMER.CMD -t1 ...
  183.  
  184.  
  185. Both scripts can be safely terminated by closing the window in which they
  186. are executing.
  187.  
  188.  
  189. VI. SPKIRC.CMD  Speaking IRC
  190. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  191. The files in rexx\spkirc:
  192.  
  193. ircstart.txt A sample startup command file.
  194. spkirc.cfg   A sample configuration files for custom voices
  195.              for a specified nicknames.
  196. spkircc.cmd  The outgoing commands IRC REXX file.
  197. spkircm.cmd  The incoming messages IRC REXX file.
  198.  
  199. You have to copy them all into your IRC client directory (or a corres-
  200. ponding script directory).  The files can have any name wanted, except
  201. spkirc.cfg which need to be named that way. If you already have a REXX
  202. incoming message file, a REXX outgoing command file and a startup command
  203. file, please add the content of all of the above at the _very beginning_
  204. of the currently installed file, *EXCEPT* the last line "Return 'OK'".
  205.  
  206. GammaTech IRC 2.0x
  207. ~~~~~~~~~~~~~~~~~~
  208. 1. Copy all the above files in to GTIRC.EXE directory.
  209. 2. Open the Startup dialog box from Options menu
  210. 3. Startup /Cmd        /run ircstart.txt
  211.    Input Msg Script    spkircm.cmd       (or the corresponding filenames)
  212.    Ouput Msg Script    spkircc.cmd
  213.  
  214. Internet Adventurer 0.96 IRC
  215. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  216. 1. Copy all the above files in to INETADV.EXE directory.
  217. 2. Open Settings dialog box from the Options menu.  Choose IRC and Scripts tab.
  218. 3. Incoming REXX Script name    spkircm.cmd
  219.    Outgoing REXX Script name    spkircc.cmd    (or the corresponding filenames)
  220.    Startup command              /run ircstart.txt
  221.    
  222. Since Internet Adventurer IRC does not support IRC Variable (yet?) you will
  223. have to edit spkircm.cmd and replace some text. Be sure to have word wrap
  224. *DISABLED* in your text editor.  Search for the exact string:
  225.  
  226.          ircrexxvariable(winhandle,"$PARTIALNICK")
  227.  
  228. and replace with exactly the partial nickname wanted (to enable recognition
  229. of messages addressed to you publicly) in quotes, ex.:
  230.  
  231.          'guard'
  232.  
  233. IRC/2 0.78
  234. ~~~~~~~~~~
  235. I was not unable to test the script with IRC/2 since the functionality is
  236. not supported in the shareware version.  The scripts should work as
  237. expected. To set your partial nickname variable in IRC/2 (to enable
  238. recognition of messages addressed to you publicly),
  239. /assign $PARTIALNICK <partial_nick_name> should work.
  240.  
  241.          /assign $PARTIALNICK guard
  242.  
  243. I was also unable to use a startup command file. I have tried IRCRC,
  244. IRCSTART and a REXX Startup file and none worked, go figure.
  245.  
  246. Complain to IRC/2 author, not me.
  247.  
  248. New IRC commands implented for SPKIRC
  249. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  250. First, you can set your partial nickname to enable recognition of messages
  251. addressed to you publicly, by setting the IRC Variable named $PARTIALNICK
  252. (it is case sensitive).
  253.  
  254. GTIRC uses the command /var (ex.: /var $PARTIALNICK,guard), Internet
  255. Adventurer does not support IRC Variables, and IRC/2 uses the command
  256. /assign (ex.: /assign $PARTIALNICK guard).  This variable should be set in
  257. the startup command file (ircstart.txt) as well as other default setting
  258. you might want to set below.
  259.  
  260.  
  261. /LOADSPKIRC   This command will enable SPKIRC functionality and will load
  262.               (or reload) SPKIRC.CFG settings in memory.  SPKIRC.CFG will
  263.               allow you to specify the frequency, the flutter and the speed
  264.               of the voice for specific partial nicknames (see SPKIRC.CFG
  265.               for more information). Partial nicknames allows SPKIRC to
  266.               recognize, for example, "[//_Thisnick_/*]" as "Thisnick".
  267.  
  268. /SPKIRC <command> <on|off>
  269.                   Anything else than ON will default to OFF.
  270.  
  271.         Available commands for <command>:
  272.  
  273.         CTCP    Will speak CTCP requests (like PING and VERSION) made on you.
  274.  
  275.         DCC     Will speak DCC CHAT and SEND requests made on you.
  276.  
  277.         NOTIFY  Will speak signon and signoff notification from the notify
  278.                 list.  Note:  this command is not aware of the current
  279.                 list, so it will give wrong information during modification
  280.                 of the notify list, but will work fine afterwards.
  281.  
  282.         NOTICE  This command disabled has priority over PUBMSG, PRIVMSG and
  283.                 MYMSG for obvious reasons.  Enabled, it will will speak
  284.                 NOTICE received and will act under the influence of PUBMSG,
  285.                 PRIVMSG and MYMSG setting.
  286.  
  287.         PRIVMSG Will speak ANY messages that only you can see.
  288.  
  289.         MYMSG   Will speak ANY messages addressed to you, privately or
  290.                 publibly (the latter will depend on the setting of
  291.                 $PARTIALNICK IRC Variable).
  292.  
  293.         PUBMSG  Will speak ANY messages that can be seen by everyone.
  294.                 This command enabled has priority on all of the following.
  295.  
  296.         JOIN    Will speak people joining your joined channels.
  297.  
  298.         LEFT    Will speak people leaving your joined channels.
  299.  
  300.         SIGNOFF Will speak poeple signing off your joined channels.
  301.  
  302.         NICK    Will speak any nickname changes in your joined channels.
  303.  
  304.         KICK    Will speak anyone being kicked out in your joined channels.
  305.  
  306.  
  307. VII. How can I implant speech in my REXX scripts?
  308. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  309. At the beginning of your REXX script, after the initial /* */, insert the
  310. following command:
  311.  
  312. queuename='REXXSPEECH'
  313. rc = rxqueue('Set', queuename)
  314.  
  315. Thereafter, instead of using 'say' use 'queue' to speech things and be sure
  316. to put the text you want to speak into double quotes, and Rsynth parameters
  317. (see Rsynth manual) outside the double quotes:
  318.  
  319. queue '-x 1000 "hello!"'
  320.  
  321.  
  322. VIII. Feedback
  323. ~~~~~~~~~~~~~~
  324. I'm very interested in any other practical (or not so practical)
  325. applications of speech you can think of.  Send any ideas, REXX programs, or
  326. wacky flights of fancy to me via email at Samuel Audet <guardia@cam.org>.
  327.  
  328.  
  329. IX. Acknowledgements
  330. ~~~~~~~~~~~~~~~~~~~~
  331. Thanks to Jim Little <jiml@teleport.com> for making this up, so I could
  332. optimize it. :)
  333.  
  334. Many thanks go to Nick Ing-Simmons (nik@tiuk.ti.com) for writing RSynth and
  335. to Derek J. Decker (djd@cris.com) for porting it to OS/2 (version 2.2
  336. rules, but crashes in Warp 4, fix it please!).
  337.  
  338. Thanks also to Cheng-Yang Tan (cytan@tristan.tn.cornell.edu) for writing
  339. UPTIME.EXE.
  340.  
  341. Thanks to the unknown artistic genious that created the icons I stole.  If
  342. you recognize any of these icons as your own, let me know so I can give you
  343. credit.
  344.  
  345. Thanks to J Hulley-Miller <jhm@pobox.com> for rewriting SPKCLOCK.CMD making
  346. it something even better.
  347.  
  348. Ryan C. Gordon <warped42@ix.netcom.com>'s PM Audio (PMAUD11.ZIP) made
  349. possible the universal kludge.
  350.  
  351. Thanks to Elton Woo <Elton.Woo@mba.mn.pubnix.net> for idea support.
  352. (And wish him best luck)
  353.